#include "port.h"
#include "stdlib.h"
void *mymalloc(int s, int size)
{
    return malloc(size);
}
void myfree(int s, void *d)
{
    free(d);
}

void mymemset(void *s, uint8_t c,uint32_t count)
{
    uint8_t *xs = s;
    while (count--)
        *xs++ = c;
}

void hw_gamepad_init(void)
{
    // add user bsp gpio init codes;
}
//   TK_KEY_UP,
//   TK_KEY_DOWN,
//   TK_KEY_LEFT,
//   TK_KEY_RIGHT,
//   TK_KEY_RETURN,
//   TK_KEY_ESCAPE,

int input_key_scan(void)
{
    int ret = 0;
    // if(!gpio_get_value(NES_KEY_UP_PORT, NES_KEY_UP_PIN))
    // {
    // 	rt_thread_delay(10);
    // 	if(!gpio_get_value(NES_KEY_UP_PORT, NES_KEY_UP_PIN))
    // 		ret  = 1;
    // }
    // else if(!gpio_get_value(NES_KEY_DO_PORT, NES_KEY_DO_PIN))
    // {
    // 	rt_thread_delay(10);
    // 	if(!gpio_get_value(NES_KEY_DO_PORT, NES_KEY_DO_PIN))
    // 		ret  = 2;
    // }
    // else if(!gpio_get_value(NES_KEY_LF_PORT, NES_KEY_LF_PIN))
    // {
    // 	rt_thread_delay(10);
    // 	if(!gpio_get_value(NES_KEY_LF_PORT, NES_KEY_LF_PIN))
    // 		ret  = 3;
    // }
    // else if(!gpio_get_value(NES_KEY_RG_PORT, NES_KEY_RG_PIN))
    // {
    // 	rt_thread_delay(10);
    // 	if(!gpio_get_value(NES_KEY_RG_PORT, NES_KEY_RG_PIN))
    // 		ret  = 4;
    // }
    // else if(!gpio_get_value(NES_KEY_ST_PORT, NES_KEY_ST_PIN))
    // {
    // 	rt_thread_delay(10);
    // 	if(!gpio_get_value(NES_KEY_ST_PORT, NES_KEY_ST_PIN))
    // 		ret  = 5;
    // }
    // else if(!gpio_get_value(NES_KEY_SE_PORT, NES_KEY_SE_PIN))
    // {
    // 	rt_thread_delay(10);
    // 	if(!gpio_get_value(NES_KEY_SE_PORT, NES_KEY_SE_PIN))
    // 		ret  = 6;
    // }
    return ret;
}

int input_key_up_press(void)
{

    // return !gpio_get_value(NES_KEY_UP_PORT, NES_KEY_UP_PIN);
    int key = 0;
    return key;
}

int input_key_do_press(void)
{
    // return !gpio_get_value(NES_KEY_DO_PORT, NES_KEY_DO_PIN);
    int key = 0;
    return key;
}

int input_key_lf_press(void)
{
    // return !gpio_get_value(NES_KEY_LF_PORT, NES_KEY_LF_PIN);
    int key = 0;
    return key;
}

int input_key_rg_press(void)
{
    // return !gpio_get_value(NES_KEY_RG_PORT, NES_KEY_RG_PIN);
    int key = 0;
    return key;
}

int input_key_st_press(void)
{
    // return !gpio_get_value(NES_KEY_ST_PORT, NES_KEY_ST_PIN);
    int key = 0;
    return key;
}

int input_key_se_press(void)
{
    // return !gpio_get_value(NES_KEY_SE_PORT, NES_KEY_SE_PIN);
    int key = 0;
    return key;
}

int input_key_sa_press(void)
{
    // return !gpio_get_value(NES_KEY_SA_PORT, NES_KEY_SA_PIN);
    int key = 0;
    return key;
}

int input_key_sb_press(void)
{
    // return !gpio_get_value(NES_KEY_SB_PORT, NES_KEY_SB_PIN);
    int key = 0;
    return key;
}

int input_key_aa_press(void)
{
    // return !gpio_get_value(NES_KEY_AA_PORT, NES_KEY_AA_PIN);
    int key = 0;
    return key;
}

int input_key_bb_press(void)
{
    // return !gpio_get_value(NES_KEY_BB_PORT, NES_KEY_BB_PIN);
    int key = 0;
    return key;
}
